package com.livestocksolutions.interfaces;

import com.livestocksolutions.Observation;

/**
 * An Interface that signals any implementing class can have an Observation associated with it.
 * @author Adam Parr
 */
public interface Observable {
	/**
	 * Get an array of Observations that have been added to the Observable.
	 * @return An array of Observations.
	 */
	public Observation[] getObservations();
	/**
	 * Remove the Observation from the Observable.
	 * @param observation The Observation to remove.
	 * @return <tt>true</tt> if the Observation was removed, <tt>false</tt> otherwise.
	 */
	public boolean removeObservation(Observation observation);
	/**
	 *Method is to add an observation about the Observable.
	 *@param observation observation about the Observable to be added.
	 */
	public void addObservation(Observation observation);
}
